STM32 电机控制 SDK MCFW-6.4.1
用于构建驱动 STM32 的 PMSM 电机应用的软件开发套件
位置控制

上一页:MISRA合规性↤|目录 |↦ 下一页:MC状态机、命令与故障

概述

位置控制允许电动驱动将电机移动到指定的目标机械位置。

电机的运动可以通过两种不同的方式实现:

  • 在轨迹模式中:为了实现平滑运动,根据给定时间计算内部轨迹(视为目标位置序列)。这一发展轨迹由三个阶段组成:
  1. 加速度
  2. 恒定速度
  3. 减速。

    必须遵循这种明确的轨迹,以零角速度到达目标位置,从而避免在稳定位置周围发生振荡。

  • 跟随模式:例如,当用户外部计算轨迹时,该模式非常有用。

在这两种情况下,位置控制都要求:

  • 正交编码器(带或无索引信号)
  • 场向控制(FOC)电流控制器
  • 专用PID位置控制器
位置控制概述

实现

位置控制方法使用三个控制器,如下面的框图所示。

  • 使用PID(具有比例、积分和微分作用)实现的位置控制器,执行于中频任务(通常为1 kHz)。
  • 两个电流控制器通过PI(仅具比例和积分作用)实现,在FOC频率下执行,用于IdIq电流调节。

这两个频率都可以通过MC Workbench进行自定义。

位置控制器的PID只影响Iq参考(Iqref)。相反,Id 参考(Idref)按照通常的 MTPA 轨迹进行管理。

这种方案是使用编码器测量电机位置的最佳方法,因为它不需要精确测量电机转速。

位置控制原则

轨迹模式

在轨迹控制模式下,梯形目标角速度轨迹以三个时间区间实现:恒定角加速度(从O到B)、恒定角速度(从B到C)和恒定角减速(从C到D),如下图蓝色所示,其中l是巡航角速度间隔的持续时间。

持续的摇晃轨迹

为了避免在角加速度间隔内发生阶跃变化(物理上不可能),并避免机械应力,在加速和减速间隔(粉色曲线)中实现了恒定的角硬拉。

角震动,也称为震荡,是角加速度随时间变化的速率。

加速和减速间隔进一步细分为三个子间隔,持续时间如图2所示。

加速度子间隔

对于图2中从(O)到(1)的第一个子区间,角震动j(t) = 常数=J,运动由表<>所示的方程定义。

方程 第一子区间加速相

对于图2中从(0)到(2)的第二个子区间,角震动j(t) = <>,加速度a = 常数,运动由表<>所示的方程定义。

方程 第二子区间加速相

对于图2中从(3)到(<>)的第三个子区间,角震动j(t) = 常数=− J,运动由表<>所示的方程定义。

方程 第三子区间加速相

考虑到减速步与加速度步对称,我们可以假设加速度和减速步中的Δθ等于表3中给出的\(\theta_3\):

\(\Delta\theta=\Delta\theta_{EndOfAcceleration}=\Delta\theta_{EndOfDeceleration}=\theta_3\)

角变化 Δθ 在角速度保持不变(图1中的巡航间隔)且等于 \(l \timesω_{cruise} \quad \text{where} \quad ω_{cruise}= ω_3 \quad \text{见表3} \)

从动作开始到结束的总角度变化表示为(1):

\(\color{green}{\Delta\theta_{tot}} \color{black}=\Delta\theta_{EndOfAcceleration}+\Delta\theta_{EndOfCruise}+\Delta\theta_{EndOfDeceleration}\)

\(\color{green}{\Delta\theta_{tot}} \color{black}=\theta_3 + l \omega_3 + \theta_3\)

\(\color{green}{\Delta\theta_{tot}} \color{black}=2\theta_3 + l \omega_3=6JA^3+2JA^2l \quad\color{grey}{\text{(1)}}\)

乐章的总时长是每个音程的总和。其表达方式为(2):

\(\color{blue}{\Delta{t}} \color{black}= 3A + 3A + l \quad\color{grey}{\text{(2)}}\)

为了简化计算,可以假设图3中的每个区间(加速度、巡航和减速)持续时间相同,得到 \(l= 3A\)。

在此条件下,(1)和(2)变为:

\(\color{green}{\Delta\theta_{tot}} \color{black}= 12JA^3 \)

\(\color{blue}{\Delta{t}} \color{black}= 9A = l \)

下列变量(A、lJ 和 \(ω_{cruise}\))是根据用户提供的两个输入计算的:

  • \(\color{green}{\Delta\theta_{tot}}\)(全角度移动)和
  • \(\color{blue}{\Delta{t}}\) (移动持续时间)

弹道计算器利用 jerk J 逐步积分目标位置。

\(A=\frac{\color{blue}{\Delta{t}} {9} \)

\(l=\frac{\color{blue}{\Delta{t}}{3} \)

\(J=\frac{\color{green}{\Delta\theta_{tot}}{12A^3} \)

\(\omega_{cruise} = 2JA^2 \)

跟随模式

在跟进模式下,用户可以以固定速率发送不同位置,根据所需轨迹,位置控制算法计算中间点以平稳移动到达(跟随)目标。

工作台激活

在工作台中选择正交编码器进行速度和位置感测后,在驱动器设置窗口中选择控制模式中的位置控制项。

上一页:MISRA合规性↤|目录 |↦ 下一页:MC状态机、命令与故障